window: Hide the border when maximized
authorMatthias Clasen <mclasen@redhat.com>
Sun, 10 Mar 2013 07:30:26 +0000 (03:30 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 17 Mar 2013 16:19:50 +0000 (12:19 -0400)
Dragging windows from the border is not useful when maximized.

gtk/gtkwindow.c

index 71bf0af312c21c78ffbaccc23c0c4fcc76a6e853..3a9028d3ecdeac93126aa2c1b218d660cef87845 100644 (file)
@@ -5925,6 +5925,7 @@ get_decoration_borders (GtkWidget *widget,
 {
   GtkStyleContext *context;
   GtkStateFlags state;
+  GdkWindow *window;
 
   context = gtk_widget_get_style_context (widget);
   state = gtk_style_context_get_state (context);
@@ -5939,10 +5940,19 @@ get_decoration_borders (GtkWidget *widget,
 
   if (window_border != NULL)
     {
-      gtk_style_context_save (context);
-      gtk_style_context_add_class (context, "window-border");
-      gtk_style_context_get_border (context, state, window_border);
-      gtk_style_context_restore (context);
+      window = gtk_widget_get_window (widget);
+      if (window != NULL && (gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED) != 0)
+        {
+           GtkBorder empty = { 0 };
+           *window_border = empty;
+         }
+      else
+        {
+          gtk_style_context_save (context);
+          gtk_style_context_add_class (context, "window-border");
+          gtk_style_context_get_border (context, state, window_border);
+          gtk_style_context_restore (context);
+        }
     }
 }
 
@@ -8815,7 +8825,8 @@ gtk_window_draw (GtkWidget *widget,
 
       if (priv->client_decorated &&
           priv->decorated &&
-          !priv->fullscreen)
+          !priv->fullscreen &&
+          !(gdk_window_get_state (gtk_widget_get_window (widget)) & GDK_WINDOW_STATE_MAXIMIZED))
         {
           gtk_style_context_add_class (context, "window-border");
           gtk_widget_get_allocation (widget, &allocation);